layui.use([ 'form', 'table' , 'upload', 'element'], function() {
	var form = layui.form;
	var table = layui.table;
	var upload = layui.upload;
	var element = layui.element;
	var projectIdStr;
	var sysuer;
	var $ = layui.$;
	var active = {
		    reload: function(){
			      var nameText = $('#nameText');
			      var numberText = $("#numberText");
			      //执行重载
			      table.reload('platTableReload', {
			        page: {
			          curr: 1 //重新从第 1 页开始
			        }
			        ,where: {
			            platName: nameText.val(),
			            platNumber: numberText.val(),
			        }
			      });
			    }
		};
	
	 var roleId = "";
		$.ajax({
			type: 'post',
		    url: '../../sysuser/findUserRole',
		    async: false,
		    success: function(result){
		    	sysuer = result;
		    	roleId = result.role_id;
		        if(roleId == 3){
		        	$('#addPlat').css('display','inline-block');
		        }
		    }		
		});
		
		var btn = document.getElementById("addPlat");  
	       btn.onclick =function(){  
	        layer.open({
					type:1,
					title : "添加平台",
					skin : "layui-layer-lan",
					area : [ "45%" ],
					btnAlign: 'c',
					btn : [ '添加平台' ,"取消"],				
					content : $("#addPlatDiv"),
					success : function(layero) {
						$('#platNameInput').val("");//清空输入框
						$('#platNumberInput').val("");//清空输入框
					},
					yes : function(index, layero) {
						var exsit = false;
						var platNameInput = $('#platNameInput').val();
						var platNumberInput = $('#platNumberInput').val();
						if(platNameInput==""){
							layer.msg("平台名称不能为空");
							return false;
						}
						if(platNumberInput==""){
							layer.msg("平台编号不能为空");
							return false;
						}
						/*$.ajax({
							type : "POST",// 方法类型
							dataType : "json",// 预期服务器返回的数据类型
							url : "../../plat/isPlatNameExist",// url
							data : {platName : platNameInput,
								    platNumber : platNumberInput},
							async:false,
							success : function(result) {
							    if(result.data=="1"){
							    	layer.msg("平台名称或编号已存在");
							    	exsit = true;
							    }else if(result.data=="2"){
							    	layer.msg("判断平台名称和编号是否已存在时出错");
							    	exsit = true;
							    }
							}						
						});
						if(exsit){
							return false;
						}*/
						$.ajax({
							type : "POST",// 方法类型
							dataType : "json",// 预期服务器返回的数据类型
							url : "../../plat/addNewPlat",// url
							data : {
								platName : platNameInput,
								platNumber : platNumberInput
							},
							success : function(result) {
								if (result.code == 0) {
									layer.close(index);
									layer.msg('新增项目成功');
									table.reload('platTableReload');
								}else{
									layer.msg('新增项目失败');
									layer.close(index);
								}
							},
							error : function() {
								layer.msg('新增项目失败');
								layer.close(index);
							}
						});
					}	
				});
	    }  
		
	
	//监听用户名的输入框
	$('#nameText').on("input propertychange", function() {
        active.reload();
    });
    
	//监听姓名的输入框
    $('#numberText').on("input propertychange", function() {
        active.reload();
    });
    
    table.render({
		elem : '#platTable',
		url : '../../plat/findPlatByConditions',
		toolbar : '#toolbarPlat',
		title : '任务表',
		cols : [ [ 
				{type : 'checkbox', fixed: 'left'},
		    	{field: 'id',title: 'ID',sort: true, fixed: 'left'},
		    	{field: 'name',title: '平台名称',sort: true},
		    	{field: 'number',title: '平台编号',sort: true},
		    	{fixed : 'right',title : '操作',width : roleId == "3" ?200 : 100, templet: function(d){
		    		if(roleId == "3"){
		    			return "<a class='layui-btn layui-btn-normal layui-btn-xs' lay-event='version' style=''margin-left: 15px'>历史版本</a>" + 
				        "<a class='layui-btn layui-btn-danger layui-btn-xs' lay-event='del' style='margin-left: 15px'>删除</a>" +
				        "<a class='layui-btn layui-btn-normal layui-btn-xs' lay-event='upd' style='margin-left: 15px'>编辑</a>"
		    		}else{
		    			return "<a class='layui-btn layui-btn-normal layui-btn-xs' lay-event='version' style=''margin-left: 15px'>历史版本</a>";
		    		}
		    	}}
		    	
	           ] ],
        page: false,
	    height: $(window).height() - 50,
	    id: 'platTableReload',
	});
    
 // 头工具栏事件
	table.on('toolbar(platTable)', function(obj) {
		var checkStatus = table.checkStatus(obj.config.id);
		switch (obj.event) {
		case 'getCheckData':
			var data = checkStatus.data;
			layer.alert(JSON.stringify(data));
			break;
		case 'getCheckLength':
			var data = checkStatus.data;
			layer.msg('选中了：' + data.length + ' 个');
			break;
		case 'isAll':
			layer.msg(checkStatus.isAll ? '全选' : '未全选');
			break;
		case 'addPlat':
			break;
		}
	});
	
	//监听行工具事件
	table.on('tool(platTable)', function(obj) {
		var data = obj.data;
		if (obj.event === 'version') {
			 table.reload('platProcessInstanceTableReload',{
					where: { //设定异步数据接口的额外参数，任意设
						platId: data.id
					  }
			 });
			 layer.open({
					type : 1,
					title : "平台程序列表",
					skin : "layui-layer-lan",
					shadeClose : true,
					area : ["50%", "80%"],
					content : $("#platProcessInstanceTableDiv") 
				});	
		} else if (obj.event === 'del') {	
			layer.confirm('确认删除此平台?', function(index){
				$.ajax({
					type : "POST",// 方法类型
					dataType : "json",// 预期服务器返回的数据类型
					url : "../../plat/deletePlatById",// url
					data : {
						platId : data.id,
					},
					success : function(result) {
						if (result.data == 1) {
							table.reload('platTableReload');
							layer.msg('删除平台成功');
						}else{
							layer.msg('删除平台失败');
							layer.close(index);
						}
					},
					error : function() {
						layer.msg('删除平台失败');
						layer.close(index);
					}
				});
				  layer.close(index);
			});  
		} else if (obj.event === 'upd') {	
	        layer.open({
				type:1,
				title : "编辑平台",
				skin : "layui-layer-lan",
				area : [ "45%" ],
				btnAlign: 'c',
				btn : [ '确认' ,"取消"],				
				content : $("#addPlatDiv"),
				success : function() {
					$('#platNameInput').val(data.name);
					$('#platNumberInput').val(data.number);
				},
				yes : function(index, layero) {
					var platNameInput = $('#platNameInput').val();
					var platNumberInput = $('#platNumberInput').val();
					if(platNameInput==""){
						layer.msg("平台名称不能为空");
						return false;
					}
					if(platNumberInput==""){
						layer.msg("平台编号不能为空");
						return false;
					}
					$.ajax({
						type : "POST",// 方法类型
						dataType : "json",// 预期服务器返回的数据类型
						url : "../../plat/updatePlatById",// url
						data : {
							platId : data.id,
							platName : platNameInput,
							platNumber : platNumberInput
						},
						success : function(result) {
							layer.close(index);
							layer.msg(result.msg);
							table.reload('platTableReload');
						},
						error : function() {
							layer.msg('编辑项目失败');
							layer.close(index);
						}
					});
				}	
			});
		}
	});
	
	 table.render({
			elem : '#platProcessInstanceTable',
			url : '../../plat/selectProcessInstanceByPlatId',
			title : '任务表',
			cols : [ [ 
			    	{field: 'id',title: 'ID',sort: true, fixed: 'left',width : 100},
			    	{field: 'name',title: '流程名称'},
			    	{field: 'version',title: '版本号'},
			    	{fixed : 'right',title : '操作',toolbar : '#barPlatProcessInstance',width : 150}
		           ] ],
	        page: false,
		    id: 'platProcessInstanceTableReload'
		});
	 
	//监听行工具事件
		table.on('tool(platProcessInstanceTable)', function(obj) {
			var data = obj.data;
			if (obj.event === 'details') {
				 table.reload('platProcessInstanceFileTableReload',{
						where: { //设定异步数据接口的额外参数，任意设
							processInstanceId: data.processInstanceId
						  }
				 });
				 layer.open({
						type : 1,
						title : "平台文件列表",
						skin : "layui-layer-lan",
						shadeClose : true,
						area : ["60%", "80%"],
						content : $("#platProcessInstanceFileTableDiv") 
					});	
			}else if(obj.event === 'attachments'){
				table.reload('attachmentsTableReload',{
					where: { //设定异步数据接口的额外参数，任意设
						processInstanceId : data.processInstanceId
					  }
				 });
				 layer.open({
						type : 1,
						title : "附件文件列表",
						skin : "layui-layer-lan",
						shadeClose : true,
						area : ["60%", "80%"],
						//maxWidth: 1000,
						//maxHeight: $(window).height()*0.8,
						content : $("#attachmentsTableDiv") 
					});	
			} 
		});
		
		table.render({
			elem : '#platProcessInstanceFileTable',
			url : '../../plat/findPlatProcessInstanceFileTableByPid',
			title : '任务表',
			cols : [ [ 
			    	{field: 'id',title: 'ID',sort: true, fixed: 'left',width : 100},
			    	{field: 'fileName',title: '文件名称'},
			    	{field: 'time',title: '时间',templet:function(d){return datetimeFormat(d.time)},width : 200},
			    	{field: 'name',title: '更新人',width : 100},
			    	{fixed : 'right',title : '操作',toolbar : '#barPlatProcessInstanceFile',width : 100}
		           ] ],
	        page: false,
		    id: 'platProcessInstanceFileTableReload'
		});
		
		//监听行工具事件
		table.on('tool(platProcessInstanceFileTable)', function(obj) {
			var data = obj.data;
			if (obj.event === 'downLoad') {
				downLoadFile(data.fileName, data.url);
			} 
		});
		
		table.render({
			elem : '#attachmentsTable',
			url : '../../project/findattachmentsTableByPid',
			title : '文件的附件',
			cols : [ [ 
					//{type : 'checkbox', fixed: 'left'},
			    	{field: 'name',title: '文件名称'},
			    	{field: 'time',title: '更新时间',sort: true,templet:function(d){return datetimeFormat(d.time)},width : 250},
			    	{field: 'description',title: '更新人',width : 150},
			    	{fixed : 'right', title : '操作', toolbar : '#barAttachments', width : 150}
		           ] ],
	        page: false,
		    id: 'attachmentsTableReload',
		});
		
		//监听行工具事件
		table.on('tool(attachmentsTable)', function(obj) {
			var data = obj.data;
			if (obj.event === 'downLoad') {
				 downLoadFile(data.name, data.url);
			}
		});
		
		downLoadMutilFilesToZip = function(){
			  var list = table.cache.platProcessInstanceFileTableReload;
	           var imgNameList = [];
	           var imgUrlList = [];
	           for(var i = 0;i<list.length;i++){    
		           imgNameList.push(list[i].fileName); 
		           //压缩文件不允许重名，故有重名文件则改变名字        
	               for(var j = 0; j < i; j++){
	            	   if(list[i].fileName == list[j].fileName){
	            		   imgNameList[i] = list[i].fileName.substr(0,list[i].fileName.indexOf(".")) + "_" +  i + list[i].fileName.substr(list[i].fileName.indexOf(".")) ;//文件名称
	            		   break;
	            	   }
	               }
	               imgUrlList.push(list[i].url);//文件绝对路径
	           }
	           var paths =  encodeURI(encodeURI(imgUrlList));
	           var names = encodeURI(encodeURI(imgNameList));
	           //将名称传入后台
	           window.location.href = "../../upLoadFile/downLoadMutilFilesToZip?names="+names+"&paths="+paths;
		}
		
		downLoadAttachmentsFilesToZip = function(){
			var list = table.cache.attachmentsTableReload;
			           var imgNameList = [];
			           var imgUrlList = [];
			           for(var i = 0;i<list.length;i++){    
				           imgNameList.push(list[i].name); 
				           //压缩文件不允许重名，故有重名文件则改变名字        
			               for(var j = 0; j < i; j++){
			            	   if(list[i].name == list[j].name){
			            		   imgNameList[i] = list[i].name.substr(0,list[i].name.indexOf(".")) + "_" +  i + list[i].name.substr(list[i].name.indexOf(".")) ;//文件名称
			            		   break;
			            	   }
			               }
			               imgUrlList.push(list[i].url);//文件绝对路径
			           }
			           var paths =  encodeURI(encodeURI(imgUrlList));
			           var names = encodeURI(encodeURI(imgNameList));
			           //将名称传入后台
			           window.location.href = "../../upLoadFile/downLoadMutilFilesToZip?names="+names+"&paths="+paths;
		}
		
});